草庐IT

java - Spring Redis缓存实现

全部标签

ruby-on-rails - rails 是如何实现 before_filter 的?

我对Rails如何实现像before_filter这样的过滤器很感兴趣。但是看了源码还是一头雾水。我注意到rails的框架维护了一个filter_chain,并在目标方法之前运行过滤器。但是,我不明白一个重要的过程:rails是如何捕获方法调用的?我的意思是,例如,我有一个类Dog,并为方法bark设置了一个before_filter。当我调用dog.bark时,rails应该以某种方式捕获此调用,并改为运行其修改后的方法。但是,我在源代码中没有找到这样的代码。任何人都可以告诉我这个想法或指出代码所在的位置吗? 最佳答案 当您设置b

ruby - 是否有针对 Ruby 的 ISO-8601 日期解析的完整实现?

Time.iso8601方法是ISO-8601的一个受限子集。它有什么局限性?有人知道Ruby的完整实现吗?我正在使用MRI1.8.7。更新看起来没有一个类可以处理所有各种8601日期和日期/时间组合。但是,我设法通过使用Date.parse和Time.iso8601方法解决了这些问题。缺点是您需要在代码中决定输入看起来像日期还是日期/时间。警告:时区差异Time.iso8601和Time.parse的行为不同。>>Time.parse("2010-09-06T12:27:00.10-05:00")=>MonSep0618:27:00+01002010>>Time.iso8601("2

ruby - 如何在 Ruby 中模拟类 Java 的注解?

如何在ruby中模拟类Java注解?(好吧,我有答案了,概括一下http://bens.me.uk/2009/java-style-annotations-in-ruby) 最佳答案 本文改编自apieceofcodeIwroteinananswertoanotherquestion几个星期前,虽然它当然不是原创的。这是一个著名的Ruby习语,毕竟它已经使用了很多年,至少从rakes的desc方法开始.moduleAnnotationsdefannotations(meth=nil)return@__annotations__[me

ruby - 一个更好的 Ruby 实现,将十进制舍入到最接近的 0.5

这看起来非常低效。谁能给我一个更好的Ruby方式。defround_valuex=(self.value*10).round/10.0#roundstotwodecimalplacesr=x.modulo(x.floor)#findsremainderf=x.floorself.value=casewhenr.between?(0,0.25)fwhenr.between?(0.26,0.75)f+0.5whenr.between?(0.76,0.99)f+1.0endend 最佳答案 classFloatdefround_point

ruby-on-rails - 如何在 Rails 3 中为社交网络应用程序实现友谊模型?

我目前正在开发一个小型社交网络应用程序,现在我正在尝试创建一个模型来表示用户之间的友谊。到目前为止,这是我想出的:classUser:friendshipsendclassFriendship'User'end我的友谊模型有一个字段confirmed作为bool值,我想使用它将友谊定义为未决或已确认。如何访问特定用户的所有待处理请求?我能以某种方式定义吗这使用Rails的scope方法?有点像current_user.friendships.requests#=>[Friendship,Friendship,...]会很棒。如何使这种关联成为双向的?我只是添加另一个friendship

ruby - Ruby 是否有正式的规范(如 Java 语言规范 (JLS))?

Ruby是否有明确的规范,类似于Java的Java语言规范。谷歌搜索ruby​​语言规范提供http://ruby-std.netlab.jp/结果,该站点已关闭,我不确定它是否是最新的 最佳答案 有adraft对于formalspecificationruby。它由OpenStandardsPromotionCenter开发的Information-TechnologyPromotionAgency(日本政府机构)提交给JapaneseIndustrialStandardsCommittee然后进一步到InternationalO

ruby - 清除 ActiveRecord 缓存

我正在使用ActiveRecord3.0(没有rails)构建一个命令行应用程序。如何清除ActiveRecord维护的查询缓存? 最佳答案 第一次近似:ActiveRecord::Base.connection.query_cache.clear 关于ruby-清除ActiveRecord缓存,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3740705/

ruby - 高效的 Ruby LRU 缓存

使用任意Ruby对象作为基于最近最少使用算法过期的键来构建缓存的最有效方法是什么。它应该使用Ruby的正常哈希语义(不等于?) 最佳答案 我知道它晚了几年,但我刚刚实现了我认为是Ruby最快的LRU缓存。它还经过测试,可以在多线程环境中安全使用。https://github.com/SamSaffron/lru_redux注意:在Ruby1.9中Hash是有序的,所以你可以在几行代码中欺骗并构建最快的LRU缓存classLruRedux::Cache19definitialize(max_size)@max_size=max_siz

ruby-on-rails - 为具有 has_many 关系的俄罗斯娃娃缓存构建 Rails 应用程序

在研究了DHH和其他关于基于键的缓存过期和俄罗斯套娃缓存的博客文章之后,我仍然不确定如何处理一种关系类型。具体来说,has_many关系。我将分享我对示例应用程序的研究结果。这有点讲故事,所以等一下。假设我们有以下ActiveRecord模型。我们只关心模型的cache_key的适当更改,对吗?classArticle我们已经有一篇文章,有一条评论。两者都是不同的作者。目标是在以下情况下更改文章的cache_key:文章正文或标题更改其评论的正文发生变化文章作者姓名变更文章评论作者姓名变更所以默认情况下,我们适用于情况1和情况2。1.9.3-p194:034>article.cache

ruby-on-rails - 找出在 Ruby/Rails 中定义方法的位置(相对于 Java)

我刚刚开始使用RubyonRails。来自Java世界,我想知道的一件事是Ruby/Rails开发人员如何找到实际定义方法的位置。即使在第三方库中(假设我有源代码),我也习惯于单击Eclipse中的方法来查找定义的位置。一个具体的例子:我试图找出Authlogicgem如何明显地改变我的User类的构造函数以需要一个额外的参数(称为:password_confirmation),即使User类甚至没有继承任何与Authlogic相关的东西.可能我只是忽略了这里非常明显的东西(或者我仍然无法理解整个“约定优于配置”的事情;-)) 最佳答案